package com.itheima.service;

import com.itheima.domain.*;

import java.math.BigDecimal;
import java.util.List;

public interface AdminService {
    Admin authenticate(String username, String password);

    Admin findAdminByUsername(String username);

    AdminStatsVO getAdminStats();

    List<AdminActivityVO> getRecentActivities(int count);

    List<Double> getWeeklySalesData();

    List<String> getCategoryNames();

    List<Double> getCategorySalesData();

    List<BigDecimal> getMonthlySalesData();

    List<Integer> getMonthlyLabels();

    List<User> getAllUsers();

    List<Product> getAllProducts();

    List<Order> getAllOrders();

    List<Category> getAllCategories();

    User getUserById(Integer userId);

    Product getProductById(Integer productId);

    Order getOrderById(Integer orderId);

    List<User> searchUsersWithPagination(String keyword, int offset, int pageSize);

    int countUsersByKeyword(String keyword);

    List<User> getAllUsersWithPagination(int offset, int pageSize);

    int countAllUsers();

    List<Product> searchProductsWithPagination(String keyword, Integer categoryId, Integer status, String sort, int offset, int pageSize);

    int countProducts(String keyword, Integer categoryId, Integer status);

    List<Order> searchOrdersWithPagination(String keyword, Integer status, String timeRange, String sort, int offset, int pageSize);

    int countOrders(String keyword, Integer status, String timeRange);

    int deleteOrder(Integer orderId);
}